#include<stdio.h>

//求阶乘
// int factorial(int n)
// {
//     if (n==1)
//     return n;
//     else
//     return n*factorial(n-1);
// }
// int main ()
// {
//     int n=0;
//     while (scanf("%d",&n)!=EOF)
//     printf("%d的阶乘是%d\n",n,factorial(n));
//     return 0;
// }

// // int main ()
// // {
// //     int n=0;
// //     while (scanf("%d",&n)!=EOF)
// //     {   int factorial=1;
// //         int tmp=n;
// //         for(int i=1;i<n;i++)
// //         {
// //             factorial=factorial*tmp;
// //             tmp-=1;
// //         }
// //         printf("%d的阶乘是%d\n",n,factorial);
// //     }
// //     return 0;
// // }

// 递归方式实现打印一个整数的每一位

// void print (int n)
// {
//     if (n/10==0)
//     printf ("%d ",n);
//     else
//     {
//         print (n/10);   
//         printf("%d ",n%10);
//     }
// }
// int main ()
// {
//     int n=0;
//     while (scanf("%d",&n)!=EOF)
//     print (n);
//     printf("\n");
//     return 0;
// }
    
    // 在一个整型数组中，只有一个数字出现一次，其他数组都是成对出现的，请找出那个只出现一次的数字。

// int main ()
// {
//     int arr[]={1,2,3,4,5,1,2,3,4};
//     int sz=sizeof (arr)/sizeof( arr[0]);
//     int ret=0;
//     for (int i=0;i<sz;i++)
//         ret =ret^arr[i];
//     printf ("单身狗是：%d\n",ret);
//     return 0;
// }

// #include <stdio.h>
// int main ()
// {
//     int n=0;
//     while (scanf ("%d",&n))
//     {
//         int tmp=n;
//         int count=0;
//         while(tmp)
//         {
//             tmp=tmp&(tmp-1);
//             count++;
//         }
//         printf ("%d的二进制位中有%d个1\n",n,count);
//     }
//     return 0;
// }